# Return the journey bundle information

Return the journey bundle information which contains the list of journey versions

Endpoint: GET /entities/journey_bundles/{journeyBundleId}
Version: 1.0.0
Security: TdApikeyAuth

## Path parameters:

  - `journeyBundleId` (integer, required)
    Journey Bundle ID

## Query parameters:

  - `checkOnDemandEligibility` (boolean)
    If true, the response includes isEligibleForOnDemand, onDemandIneligibilityReason and parentSegmentLastRefreshedAt. When omitted or false, all three fields are absent from the response and no extra eligibility queries are issued.

## Response 200 fields (application/json):

  - `name` (string)
    Name of the journey bundle

  - `description` (string)
    Description of the journey bundle

  - `latestJourneyId` (any)
    Derived from the initial journey version name

  - `lastVersionNumber` (integer)
    The version number of the most recently created journey. If no journey has been created, this will be 0.

  - `journeys` (array)

  - `journeys.id` (string, required)

  - `journeys.type` (string, required)
    Enum: "journey"

  - `journeys.attributes` (object, required)

  - `journeys.attributes.audienceId` (string, required)

  - `journeys.attributes.name` (string, required)

  - `journeys.attributes.description` (string, required)

  - `journeys.attributes.state` (string, required)
    Enum: "draft", "simulation", "launched"

  - `journeys.attributes.goal` (object, required)

  - `journeys.attributes.goal.name` (string, required)

  - `journeys.attributes.goal.description` (string)

  - `journeys.attributes.goal.segmentId` (string, required)

  - `journeys.attributes.goal.target` (object)

  - `journeys.attributes.goal.target.journeyId` (string, required)
    ID of an existing journey to jump to.

  - `journeys.attributes.goal.target.journeyStageId` (string, required)
    ID of an existing stage within the target journey to jump to.

  - `journeys.attributes.goal.target.journeyBundleId` (string)

  - `journeys.attributes.goal.target.stageOrderIndex` (integer)

  - `journeys.attributes.goal.target.jumpReferenceId` (string)
    The reference id of the jump target. This is used to identify the jump entity in the included field.

  - `journeys.attributes.createdAt` (string, required)

  - `journeys.attributes.updatedAt` (string, required)

  - `journeys.attributes.launchedAt` (string, required)

  - `journeys.attributes.journeyStages` (array, required)

  - `journeys.attributes.journeyStages.id` (string)
    Server-generated. Omit when creating a stage; supply to target an existing stage when updating.

  - `journeys.attributes.journeyStages.name` (string, required)

  - `journeys.attributes.journeyStages.description` (string)

  - `journeys.attributes.journeyStages.steps` (object)

  - `journeys.attributes.journeyStages.steps.uuid` (any)

  - `journeys.attributes.journeyStages.steps.uuid.type` (string, required)
    Enum: "WaitStep"

  - `journeys.attributes.journeyStages.steps.uuid.name` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.waitStepType` (string, required)
    Enum: "Duration"

  - `journeys.attributes.journeyStages.steps.uuid.waitStep` (integer, required)

  - `journeys.attributes.journeyStages.steps.uuid.waitStepUnit` (string, required)
    Enum: "day", "week"

  - `journeys.attributes.journeyStages.steps.uuid.next` (string)

  - `journeys.attributes.journeyStages.steps.uuid.waitUntilDate` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.timezone` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.waitUntilDaysOfTheWeek` (array, required)
    Array of integer representing the day of the week.
1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday, 7: Sunday
    Example: [1,5,6]

  - `journeys.attributes.journeyStages.steps.uuid.conditions` (array, required)
    the path with segment is required, but the path with moveAfter as timedOutPath = true is optional

  - `journeys.attributes.journeyStages.steps.uuid.description` (string)

  - `journeys.attributes.journeyStages.steps.uuid.journeyActivationStepId` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.branches` (array, required)

  - `journeys.attributes.journeyStages.steps.uuid.branches.name` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.branches.segmentId` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.branches.excludedPath` (boolean)

  - `journeys.attributes.journeyStages.steps.uuid.branches.next` (string)

  - `journeys.attributes.journeyStages.steps.uuid.customizedSplit` (boolean, required)

  - `journeys.attributes.journeyStages.steps.uuid.uniqueId` (string)

  - `journeys.attributes.journeyStages.steps.uuid.randomizationMode` (string)
    Controls how variant assignments behave on re-entry. "sticky" (default): deterministic assignment, same variant on every entry. "reentry": fresh random assignment on each re-entry. "periodic": assignment stable within cadence window, re-randomized at boundary.
    Enum: "sticky", "reentry", "periodic"

  - `journeys.attributes.journeyStages.steps.uuid.periodicCadence` (string)
    Required when randomizationMode is "periodic". Defines the cadence at which variant assignments reset.
    Enum: "weekly", "monthly", "yearly"

  - `journeys.attributes.journeyStages.steps.uuid.periodicBoundaryMonth` (integer)
    Required when periodicCadence is "yearly". Month of the reset boundary (1-12).

  - `journeys.attributes.journeyStages.steps.uuid.periodicBoundaryDay` (integer)
    Required when periodicCadence is "monthly" or "yearly". Day of the reset boundary (1-31). If the specified day exceeds the number of days in a given month, the last day of that month is used.

  - `journeys.attributes.journeyStages.steps.uuid.periodicBoundaryDayOfWeek` (integer)
    Required when periodicCadence is "weekly". Day of the reset boundary using ISO-8601 numbering (1=Monday, 7=Sunday).

  - `journeys.attributes.journeyStages.steps.uuid.enabledCapping` (boolean)
    Enables profile capping on the step

  - `journeys.attributes.journeyStages.steps.uuid.winnerVariantId` (string)
    Set when a winner variant is declared via PATCH .../ab_test_winner. Response-only; cannot be set through a journey create/update request.

  - `journeys.attributes.journeyStages.steps.uuid.variants` (array, required)

  - `journeys.attributes.journeyStages.steps.uuid.variants.id` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.variants.name` (string, required)

  - `journeys.attributes.journeyStages.steps.uuid.variants.percentage` (number, required)

  - `journeys.attributes.journeyStages.steps.uuid.variants.next` (string)

  - `journeys.attributes.journeyStages.steps.uuid.variants.isControlGroup` (boolean)
    Marks a variant as the control group (required when enabledCapping is true)

  - `journeys.attributes.journeyStages.steps.uuid.variants.cappingAt` (integer)
    Capping threshold per variant (required for non-control variants when capping is enabled)

  - `journeys.attributes.journeyStages.rootStep` (string)

  - `journeys.attributes.journeyStages.exitCriterias` (array)

  - `journeys.attributes.paused` (boolean, required)

  - `journeys.attributes.pausedAt` (string, required)

  - `journeys.attributes.allowReentry` (boolean, required)

  - `journeys.attributes.reentryMode` (string)
    Enum: "no_reentry", "reentry_unless_goal_achieved", "reentry_always"

  - `journeys.attributes.journeyBundleId` (string)

  - `journeys.attributes.journeyBundleName` (string)

  - `journeys.attributes.versionNumber` (integer)

  - `journeys.attributes.journeyBundleDescription` (string)

  - `journeys.attributes.latestExecution` (any)
    The most recent execution of the journey workflow. If no executions have been created, this will be null.

  - `journeys.relationships` (object, required)

  - `journeys.relationships.parentFolder` (object)

  - `journeys.relationships.parentFolder.data` (object)

  - `journeys.relationships.parentFolder.data.id` (string, required)

  - `journeys.relationships.parentFolder.data.type` (string, required)
    Enum: "folder-segment"

  - `journeys.relationships.createdBy` (object)

  - `journeys.relationships.createdBy.data` (object)

  - `journeys.relationships.createdBy.data.id` (string, required)

  - `journeys.relationships.createdBy.data.type` (string, required)
    Enum: "user"

  - `latestExecution` (any)
    The most recent execution of the latest journey. If no executions have been created, this will be null.

  - `parentSegmentLatestExecution` (object)
    The most recent execution of the latest journey. If no executions have been created, this will be null.

  - `parentSegmentLatestExecution.audienceId` (string)

  - `isEligibleForOnDemand` (boolean)
    Whether the latest journey version may be triggered on demand. Clients must not recompute this from state, paused, latestJourneyId or priority-group membership.
It is a necessary but not sufficient condition: true means none of the four conditions in onDemandIneligibilityReason apply, but POST /entities/journeys/{journeyId}/run may still reject the request with 409, so callers must handle that response rather than treating the button as guaranteed to succeed.
Present only when checkOnDemandEligibility is true.

  - `onDemandIneligibilityReason` (string)
    null if and only if isEligibleForOnDemand is true. When several conditions fail, the first in the order listed is returned; that order is part of the contract and follows the 422 guard order of POST /entities/journeys/{journeyId}/run.
That run endpoint has two further guards this field deliberately does not evaluate, because each costs a workflow-engine round-trip and this is a GET: PARENT_SEGMENT_RUNNING and JOURNEY_WORKFLOW_RUNNING, both returned as 409. Neither value ever appears here.
A journey bundle with no journey yet reports JOURNEY_NOT_ACTIVE rather than a dedicated code, so that "null if and only if eligible" holds; latestJourneyId is null in that case if you need to tell the two apart.
Treat an unrecognised value as "ineligible, reason unknown" and render generic copy. Present only when checkOnDemandEligibility is true.
    Enum: "JOURNEY_NOT_ACTIVE", "PRIORITY_GROUP_JOURNEY_NOT_ELIGIBLE", "NOT_LATEST_VERSION", "PARENT_SEGMENT_NEVER_REFRESHED"

  - `parentSegmentLastRefreshedAt` (string)
    The parent segment's (audience's) matrix_updated_at formatted as ISO8601, or null if it has never been refreshed. Present only when checkOnDemandEligibility is true.

  - `included` (array)

  - `included.id` (string, required)

  - `included.type` (string, required)
    Enum: "user"

  - `included.attributes` (object, required)

  - `included.attributes.tdUserId` (string, required)

  - `included.attributes.name` (string, required)

